@echo off
chcp 65001 >nul
echo ========================================
echo 显卡测试工具打包脚本 (UV环境)
echo ========================================
echo.

echo 正在检查uv环境...
if not exist ".venv\Scripts\python.exe" (
    echo 错误: 未找到uv虚拟环境，请先运行 uv venv 创建虚拟环境
    pause
    exit /b 1
)

echo.
echo 正在使用uv虚拟环境中的Python...
set PYTHON_PATH=.venv\Scripts\python.exe
set PIP_PATH=.venv\Scripts\pip.exe

echo Python路径: %PYTHON_PATH%
echo.

echo 正在检查PyInstaller...
%PIP_PATH% show pyinstaller >nul 2>&1
if errorlevel 1 (
    echo 正在安装PyInstaller...
    %PIP_PATH% install pyinstaller
    if errorlevel 1 (
        echo 错误: PyInstaller安装失败
        pause
        exit /b 1
    )
)

echo.
echo 正在检查项目依赖...
if exist "requirements.txt" (
    echo 安装requirements.txt中的依赖...
    %PIP_PATH% install -r requirements.txt
    if errorlevel 1 (
        echo 警告: requirements.txt安装失败，尝试安装已知依赖...
        %PIP_PATH% install pillow keyboard
    )
) else (
    echo 警告: requirements.txt不存在，尝试安装已知依赖...
    %PIP_PATH% install pillow keyboard
)

echo.
echo 开始打包项目...
echo 目标文件: 测试助手.exe
echo.

%PYTHON_PATH% -m PyInstaller --noconfirm --onefile --windowed ^
    --name "测试助手" ^
    --icon "icon.ico" ^
    --add-data "test_results.db;." ^
    --hidden-import "PIL" ^
    --hidden-import "PIL.Image" ^
    --hidden-import "PIL.ImageTk" ^
    --hidden-import "keyboard" ^
    --hidden-import "sqlite3" ^
    --hidden-import "tkinter" ^
    --hidden-import "threading" ^
    --hidden-import "datetime" ^
    --hidden-import "os" ^
    --hidden-import "re" ^
    --hidden-import "shutil" ^
    --hidden-import "time" ^
    main.py

if errorlevel 1 (
    echo.
    echo 错误: 打包失败！
    echo 请检查错误信息并重试
    pause
    exit /b 1
)

echo.
echo ========================================
echo 打包完成！
echo ========================================
echo.
echo 可执行文件位置: dist\测试助手.exe
echo.
echo 正在复制到项目根目录...
copy "dist\测试助手.exe" "测试助手.exe" >nul
if errorlevel 1 (
    echo 警告: 复制到根目录失败，请手动复制
) else (
    echo 已复制到项目根目录: 测试助手.exe
)

echo.
echo 清理临时文件...
rmdir /s /q build >nul 2>&1
rmdir /s /q __pycache__ >nul 2>&1
del /q *.spec >nul 2>&1

echo.
echo 打包完成！可以运行 测试助手.exe 了
echo.
pause 